remove関数は、ファイルやフォルダ(ディレクトリ)を削除します。この関数で削除するには、他のプロセスでファイルやフォルダを使用していないことや、削除する為の権限を持っていることなどがあります。また、フォルダは空でないと削除できません。
#include <stdio.h>
int remove(const char *pathname);
*pathnamesは削除するファイルやフォルダのパス名を指定します。
戻り値として、削除できた場合は0を、エラーの場合は-1を返します。
プログラム 例
#include <stdio.h>
int main(int argc, char **argv)
{
char ans;
int return_code = 0;
if (argc == 2) {
printf('%sを削除しますか?(y/n)==> ', *(argv + 1));
scanf('%c', &ans);
if (ans == 'Y' || ans == 'y') {
if (remove(*(argv + 1)) == 0) {
printf('削除しました\n');
}
else {
printf('削除できませんでした\n');
return_code = 1;
}
}
else {
printf('キャンセルします\n');
}
}
else {
printf('実行時引数の数が不当です\n');
return_code = 2;
}
return return_code;
}
例の実行結果
$ ls -l DIR1 合計 4 -rw-r--r-- 1 user users 20 2008-07-04 09:03 temp_1.txt $ $ ./remove.exe DIR1 DIR1を削除しますか?(y/n)==> y 削除できませんでした $ $ ./remove.exe DIR1/temp_1.txt DIR1/temp_1.txtを削除しますか?(y/n)==> y 削除しました $ $ ls -l DIR1 合計 0 $ $ ./remove.exe DIR1 DIR1を削除しますか?(y/n)==> y 削除しました $ $ ls -l DIR1 ls: cannot access DIR1: そのようなファイルやディレクトリはありません $